summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2023-01-25 22:03:54 +0100
committerMorph <39850852+Morph1984@users.noreply.github.com>2023-01-25 22:43:04 +0100
commitc55147b24a2752bd86aa559d2397a9dc54feb582 (patch)
treeaeaa61a8c46d94629432d1dfc60de9fb8e7459de
parentpolyfill_thread: Implement StoppableTimedWait (diff)
downloadyuzu-c55147b24a2752bd86aa559d2397a9dc54feb582.tar
yuzu-c55147b24a2752bd86aa559d2397a9dc54feb582.tar.gz
yuzu-c55147b24a2752bd86aa559d2397a9dc54feb582.tar.bz2
yuzu-c55147b24a2752bd86aa559d2397a9dc54feb582.tar.lz
yuzu-c55147b24a2752bd86aa559d2397a9dc54feb582.tar.xz
yuzu-c55147b24a2752bd86aa559d2397a9dc54feb582.tar.zst
yuzu-c55147b24a2752bd86aa559d2397a9dc54feb582.zip
-rw-r--r--src/input_common/drivers/gc_adapter.cpp4
-rw-r--r--src/input_common/drivers/joycon.cpp7
2 files changed, 6 insertions, 5 deletions
diff --git a/src/input_common/drivers/gc_adapter.cpp b/src/input_common/drivers/gc_adapter.cpp
index ecb3e9dc2..d09ff178b 100644
--- a/src/input_common/drivers/gc_adapter.cpp
+++ b/src/input_common/drivers/gc_adapter.cpp
@@ -6,6 +6,7 @@
#include "common/logging/log.h"
#include "common/param_package.h"
+#include "common/polyfill_thread.h"
#include "common/settings_input.h"
#include "common/thread.h"
#include "input_common/drivers/gc_adapter.h"
@@ -217,8 +218,7 @@ void GCAdapter::AdapterScanThread(std::stop_token stop_token) {
Common::SetCurrentThreadName("ScanGCAdapter");
usb_adapter_handle = nullptr;
pads = {};
- while (!stop_token.stop_requested() && !Setup()) {
- std::this_thread::sleep_for(std::chrono::seconds(2));
+ while (!Setup() && Common::StoppableTimedWait(stop_token, std::chrono::seconds{2})) {
}
}
diff --git a/src/input_common/drivers/joycon.cpp b/src/input_common/drivers/joycon.cpp
index 40cda400d..cedc94e63 100644
--- a/src/input_common/drivers/joycon.cpp
+++ b/src/input_common/drivers/joycon.cpp
@@ -5,6 +5,7 @@
#include "common/param_package.h"
#include "common/polyfill_ranges.h"
+#include "common/polyfill_thread.h"
#include "common/settings.h"
#include "common/thread.h"
#include "input_common/drivers/joycon.h"
@@ -67,7 +68,8 @@ void Joycons::Setup() {
void Joycons::ScanThread(std::stop_token stop_token) {
constexpr u16 nintendo_vendor_id = 0x057e;
Common::SetCurrentThreadName("JoyconScanThread");
- while (!stop_token.stop_requested()) {
+
+ do {
SDL_hid_device_info* devs = SDL_hid_enumerate(nintendo_vendor_id, 0x0);
SDL_hid_device_info* cur_dev = devs;
@@ -81,8 +83,7 @@ void Joycons::ScanThread(std::stop_token stop_token) {
}
SDL_hid_free_enumeration(devs);
- std::this_thread::sleep_for(std::chrono::seconds(5));
- }
+ } while (Common::StoppableTimedWait(stop_token, std::chrono::seconds{5}));
}
bool Joycons::IsDeviceNew(SDL_hid_device_info* device_info) const {